home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / parted / constraint.h next >
Encoding:
C/C++ Source or Header  |  2008-03-16  |  2.6 KB  |  97 lines

  1. /*
  2.     libparted - a library for manipulating disk partitions
  3.     Copyright (C) 1998, 1999, 2000, 2007 Free Software Foundation, Inc.
  4.  
  5.     This program is free software; you can redistribute it and/or modify
  6.     it under the terms of the GNU General Public License as published by
  7.     the Free Software Foundation; either version 3 of the License, or
  8.     (at your option) any later version.
  9.  
  10.     This program is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.     GNU General Public License for more details.
  14.  
  15.     You should have received a copy of the GNU General Public License
  16.     along with this program.  If not, see <http://www.gnu.org/licenses/>.
  17. */
  18.  
  19. #ifndef PED_CONSTRAINT_H_INCLUDED
  20. #define PED_CONSTRAINT_H_INCLUDED
  21.  
  22. typedef struct _PedConstraint    PedConstraint;
  23.  
  24. #include <parted/device.h>
  25. #include <parted/natmath.h>
  26.  
  27. struct _PedConstraint {
  28.     PedAlignment*    start_align;
  29.     PedAlignment*    end_align;
  30.     PedGeometry*    start_range;
  31.     PedGeometry*    end_range;
  32.     PedSector    min_size;
  33.     PedSector    max_size;
  34. };
  35.  
  36. extern int
  37. ped_constraint_init (
  38.     PedConstraint* constraint,
  39.     const PedAlignment* start_align,
  40.     const PedAlignment* end_align,
  41.     const PedGeometry* start_range,
  42.     const PedGeometry* end_range,
  43.     PedSector min_size,
  44.     PedSector max_size);
  45.  
  46. extern PedConstraint*
  47. ped_constraint_new (
  48.     const PedAlignment* start_align,
  49.     const PedAlignment* end_align,
  50.     const PedGeometry* start_range,
  51.     const PedGeometry* end_range,
  52.     PedSector min_size,
  53.     PedSector max_size);
  54.  
  55. extern PedConstraint*
  56. ped_constraint_new_from_min_max (
  57.     const PedGeometry* min,
  58.     const PedGeometry* max);
  59.  
  60. extern PedConstraint*
  61. ped_constraint_new_from_min (const PedGeometry* min);
  62.  
  63. extern PedConstraint*
  64. ped_constraint_new_from_max (const PedGeometry* max);
  65.  
  66. extern PedConstraint*
  67. ped_constraint_duplicate (const PedConstraint* constraint);
  68.  
  69. extern void
  70. ped_constraint_done (PedConstraint* constraint);
  71.  
  72. extern void
  73. ped_constraint_destroy (PedConstraint* constraint);
  74.  
  75. extern PedConstraint*
  76. ped_constraint_intersect (const PedConstraint* a, const PedConstraint* b);
  77.  
  78. extern PedGeometry*
  79. ped_constraint_solve_max (const PedConstraint* constraint);
  80.  
  81. extern PedGeometry*
  82. ped_constraint_solve_nearest (
  83.     const PedConstraint* constraint, const PedGeometry* geom);
  84.  
  85. extern int
  86. ped_constraint_is_solution (const PedConstraint* constraint,
  87.                 const PedGeometry* geom);
  88.  
  89. extern PedConstraint*
  90. ped_constraint_any (const PedDevice* dev);
  91.  
  92. extern PedConstraint*
  93. ped_constraint_exact (const PedGeometry* geom);
  94.  
  95. #endif /* PED_CONSTRAINT_H_INCLUDED */
  96.  
  97.